﻿Date.prototype.yyyymmdd = function() {
   var yyyy = this.getFullYear().toString();
   var mm = (this.getMonth()+1).toString(); // getMonth() is zero-based
   var dd  = this.getDate().toString();
   return yyyy + (mm[1]?mm:"0"+mm[0]) + (dd[1]?dd:"0"+dd[0]); // padding
};

Date.prototype.addDate = function(numDate) {
    var d = this.getDate() + 1;
    this.setDate(d);
    return this;
};

function getQueryObject() {
    var result = {}, queryString = location.search.slice(1),
        re = /([^&=]+)=([^&]*)/g, m;

    while (m = re.exec(queryString)) {
        result[decodeURIComponent(m[1])] = decodeURIComponent(m[2]);
    }

    return result;
}
function waitingNow(message) {
    message = message == null ? '<h2>Vui lòng đợi trong giây lát...</h2>' : message;
    $.blockUI({ 
        css: { 
            border: 'none', 
            padding: '15px', 
            backgroundColor: '#000', 
            '-webkit-border-radius': '10px', 
            '-moz-border-radius': '10px', 
            opacity: .9, 
            color: '#fff'
        } ,
        message: (message)
    }); 
}
function endWaiting() {
    $.unblockUI();
}

jwin.showMessage = function(message, title) {
    var oMsgBox = $('#messageBox');
    if(oMsgBox.length < 1) {
        oMsgBox = $('<div id="messageBox" style="display: none;"></div>');
        oMsgBox.appendTo(document.body);
    }
    
    oMsgBox.html(message).dialog({
            modal: true, 
            title: title,
            resizable: false,
            width: 500,
            height: 300,
            show: {
                effect: "fadeIn",
                duration: 600
            },
            hide: {
                effect: "fadeOut",
                duration: 600
            },
            open: function(event, ui) {
                
            },
            close: function() {
            }
        });
};
jwin.showError = function(error) {
    var html = '<table border="0" cellpadding="0" cellspacing="0" width="100%" height="100%"><tr valign="middle"><td align="center"><span style="color: #fff; font-size: 18px; line-height: 24px;">' + error + '</span></td></tr></table>';
    jwin.showMessage(html, 'Thông báo');
}
jdoc.ready(function(){
    $('input[note], textarea[note]').each(function(){
        var me = $(this);
        me.focus(enterThis);
        me.blur(blurThis);
        me.blur();
    });
});

jwin.showBooking = function() {
    var bookingDialog = $('#bookingDialogDetail');
    bookingDialog.dialog({
        modal: true,
        resizable: false,
        autoOpen: true,
        width: 710,
        //height: 400,
        title: 'Đặt lịch khám',
        buttons: {
            "Đặt lịch": function() {
                $( this ).dialog( "close" );
            },
            "Nhập lại": function() {
                
            }
        },
        close: function() {
            
        },
        open: function(){
            $("body").css({overflow: 'hidden'});
            bookingDialog.scrollTop(0);
        },
        close: function(){
            $("body").css({overflow: ''});
        }
    });
    return false;
}

NTTHAO.validator.isUserExisting = function(username) {
    var result = false;
    $.ajax({url:'/Services.Vigor.aspx?id=001&action=userid&value=' + encodeURIComponent(username),
        dataType: 'json',
        cache: false,
        async: false})
    .done(function(data) { 
        if (data.data.existing != 0) {
            result = true;
        }
    }); 
    return result;
}
NTTHAO.validator.isEmailExisting = function(email) {
    var result = false;
    $.ajax({url:'/Services.Vigor.aspx?id=001&action=email&value=' + encodeURIComponent(email),
        dataType: 'json',
        cache: false,
        async: false})
    .done(function(data) { 
        if (data.data.existing != 0) {
            result = true;
        }
    });
    return result;
}
jwin.clearRegister = function() {
    var regFName = $('#regFName');
    var regUsername = $('#regUsername');
    var regEmail = $('#regEmail');
    var regPassword = $('#regPassword');
    var regRetypePassword = $('#regRetypePassword');
    
    regFName.val('');
    regUsername.val('');
    regEmail.val('');
    regPassword.val('');
    regRetypePassword.val('');
    regFName.blur();
    regUsername.blur();
    regEmail.blur();
    regPassword.blur();
    regRetypePassword.blur();
    
    regUsername.get(0).focus();
}
jwin.checkRegister = function() {
    var lang = window.SITE.lang;
    var regFName = $('#regFName').get(0);
    var regUsername = $('#regUsername').get(0);
    var regEmail = $('#regEmail').get(0);
    var regPassword = $('#regPassword').get(0);
    var regRetypePassword = $('#regRetypePassword').get(0);
    
    var result = false;
    
    // name
    if (isDefaultValue(regFName)) {
        regFName.value = '';
    }
    if(Trim(regFName.value) == '') { 
        if (lang === 'vi') {
            jwin.showError("Vui lòng nhập họ tên của bạn."); 
        } else {
            jwin.showError("Please input your name."); 
        }
        regFName.focus(); 
        return false; 
    }
    // username
    if (isDefaultValue(regUsername)) {
        regUsername.value = '';
    }
    if(Trim(regUsername.value) == '' || regUsername.value.length < 5 || regUsername.value.length > 30 || !NTTHAO.validator.checkField('username', regUsername)) { 
        if (lang === 'vi') {
            jwin.showError("Tên đăng nhập không hợp lệ.<br />Tên đăng nhập dài từ 5 - 30 ký tự, chỉ bao gồm các ký tự A-Z, a-z, 0-9 và '_'."); 
        } else {
            jwin.showError("Username is invalid."); 
        }
        regUsername.focus(); 
        return false; 
    }
    if (NTTHAO.validator.isUserExisting(regUsername.value.trim())) {
        if (lang === 'vi') {
            jwin.showError('Tên đăng nhập đã tồn tại. Vui lòng chọn tên đăng nhập khác.');
        } else {
            jwin.showError('The username has already been used. Please choose another.');
        }
        regUsername.focus(); 
        return false;
    }
    // email
    if (isDefaultValue(regEmail)) {
        regEmail.value = '';
    }
    if(Trim(regEmail.value) == '' || !NTTHAO.validator.checkField('email', regEmail)) { 
        if (lang === 'vi') {
            jwin.showError("Địa chỉ email không hợp lệ."); 
        } else {
            jwin.showError("Email is invalid."); 
        }
        regEmail.focus(); 
        return false; 
    }
    if (NTTHAO.validator.isEmailExisting(regEmail.value.trim())) {
        if (lang === 'vi') {
            jwin.showError('Email này đã đăng ký. Vui lòng sử dụng email khác.');
        } else {
            jwin.showError('The email has already been used. Please choose another.');
        }
        regEmail.focus(); 
        return false;
    }
    //password
    if (isDefaultValue(regPassword)) {
        regPassword.value = '';
    }
    if(regPassword.value == '' || regPassword.value.length < 6 || regPassword.value.length > 30) { 
        if (lang === 'vi') {
            jwin.showError("Mật khẩu đăng nhập không hợp lệ.<br />Mật khẩu phải từ 6 - 30 ký tự, có phân biệt chữ hoa/thường."); 
        } else {
            jwin.showError("Password is invalid."); 
        }
        regPassword.focus(); 
        return false; 
    }
    if(regPassword.value != regRetypePassword.value) { 
        if (lang === 'vi') {
            jwin.showError("Mật khẩu đăng nhập không khớp."); 
        } else {
            jwin.showError("Password does not match the confirm password."); 
        }
        regPassword.focus(); 
        return false; 
    }
    return true;
}
jwin.registerNow = function() {
    var lang = window.SITE.lang;
    var regFName = $('#regFName').get(0);
    var regUsername = $('#regUsername').get(0);
    var regEmail = $('#regEmail').get(0);
    var regPassword = $('#regPassword').get(0);
    var regRetypePassword = $('#regRetypePassword').get(0);
    
    var name = regFName.value.trim();
    var usename = regUsername.value.trim();
    var email = regEmail.value.trim();
    var password = regPassword.value;
    
    waitingNow();
    
    try {
        var encodedPass = encodeURIComponent(hex_md5(password));
        var url = '/Services.Vigor.aspx?id=003&action=register&name=' + encodeURIComponent(name) + '&username=' + encodeURIComponent(usename) + '&password=' + encodedPass + '&email=' + email;
        
        $.ajax({url: url,
            dataType: 'json',
            cache: true,
            async: false,
            context: this })
        .done(function(data) { 
            endWaiting();
            
            if (lang === 'vi') {
                jwin.showError("Chúc mừng bạn đã đăng ký thành công.<br /><br />Vui lòng đăng nhập để sử dụng."); 
            } else {
                jwin.showError("Your account has been registered. Please login to use it."); 
            }
        });
    } catch (e) {
        endWaiting(); 
    }
}
jwin.showRegister = function() {
    var registerDialog = $('#registerDialog');
    registerDialog.dialog({
        modal: true,
        resizable: false,
        autoOpen: true,
        width: 400,
        //height: 300,
        title: 'Đăng ký',
        buttons: {
            "Đăng ký": function() {
                var result = jwin.checkRegister();
                if (result) {
                    $( this ).dialog( "close" );
                    jwin.registerNow();
                }
            },
            "Nhập lại": function() {
                jwin.clearRegister();
                return false;
            },
            "Đăng nhập": function() {
                $( this ).dialog( "close" );
                jwin.showLogin();
            }
        },
        close: function() {
            
        },
        open: function(){
            $("body").css({overflow: 'hidden'});
            registerDialog.scrollTop(0);
        },
        close: function(){
            $("body").css({overflow: ''});
        }
    });
    return false;
}

jwin.loginNow = function() {
    var txtUsername = document.getElementById('txtUsername');
    var txtPassword = document.getElementById('txtPassword');
    
    var result = (txtUsername.value.trim().length > 0) && (txtPassword.value.trim().length > 0);
    if(!result) {
        jwin.showError('Tên đăng nhập hoặc mật khẩu không đúng.');
        return result;
    }
    
    try {
        var encodedPass = encodeURIComponent(hex_md5(document.getElementById("txtPassword").value.trim()));
        var url = '/Services.Vigor.aspx?id=002&action=login&value=' + encodeURIComponent(txtUsername.value.trim()) + '&pass=' + encodedPass;
        
        $.ajax({url: url,
            dataType: 'json',
            cache: true,
            async: false,
            context: this })
        .done(function(data) { 
            if (data.result === 'OK') {
                location.href = '/';
                result = true;
            } else {
                jwin.showError('Tên đăng nhập hoặc mật khẩu không đúng.');
                result = false;
            }
        });
    } catch (e) { }
    return result;
}

jwin.showLogin = function() {
    //jwin.showMessage($('#loginDialogDetail').html(), 'Đăng nhập');
    var loginDialog = $('#loginDialogDetail');
    loginDialog.dialog({
        modal: true,
        resizable: false,
        autoOpen: true,
        width: 400,
        //height: 300,
        title: 'Đăng nhập',
        buttons: {
            "Đăng nhập": function() {
                if (jwin.loginNow() == true) {
                    $( this ).dialog( "close" );
                }
            },
            "Đăng ký": function() {
                $( this ).dialog( "close" );
                jwin.showRegister();
            }
        },
        close: function() {
            
        },
        open: function(){
            $('#txtUsername').val('');
            $('#txtPassword').val('');
            $('#txtUsername').blur();
            $('#txtPassword').blur();
            $('#txtUsername').get(0).focus();
            
            $("body").css({overflow: 'hidden'});
            loginDialog.scrollTop(0);
        },
        close: function(){
            $("body").css({overflow: ''});
        }
    });
    return false;
}

jwin.showLogout= function() {
    try {
        var url = '/Services.Vigor.aspx?id=002&action=logout';
        
        $.ajax({url: url,
            dataType: 'json',
            cache: true,
            async: false,
            context: this })
        .done(function(data) { 
        });
    } catch (e) { }
    location.href = '/';
    return false;
}